<?php

declare (strict_types=1);

namespace magein\pay\extension;

use magein\pay\data\NoticeData;
use magein\pay\data\PayOrderData;

interface PayOrderInterface
{
    /**
     * 获取订单编号
     * @return string
     */
    public function getPayNo(): string;

    /**
     * 创建订单
     * @param PayOrderData $payData
     * @return mixed
     */
    public function create(PayOrderData $payData);

    /**
     * 更新支付订单状态
     * 异步通知的时候要更新
     * @param NoticeData $notifyData
     * @return mixed
     */
    public function modify(NoticeData $notifyData);

    /**
     * 获取订单
     * @param $pay_no
     * @return array
     */
    public function getByPayNo($pay_no): array;
}